//
// Created by Senhai Xu on 2025/3/19.
//
#include <iostream>
#include <thread>
#include <mutex>
#include <memory>
using namespace std;

void func(int * count)
{
    for (int i = 0; i < 10000; i++)
    {
        (*count)++;
    }
    cout << *count << endl;
};
int main()
{
    // 线程函数中的数据未定义错误 传递指针或引用指向局部变量的问题
    // int x = 1;
    // std::thread t(func, &x); // 传递指向局部变量的指针
    shared_ptr<int> count = make_shared<int>(0);
    std::thread t1(func, count.get());
    t1.join();
    return 0;
}
